package data.set;

/**
 * This interface defines an offline set composed of pairs (id,X)
 * @author denoyer
 * 
 * @param <X> the information stored in the set
 */

public interface OfflineSet<X> extends Iterable<X> 
{
	/**
	 * 
	 * @return The Iterator over the couples (int, Object)
	 */
	public OfflineSetIterator<X> inputsetiterator();
	
	/**
	 * Return the object with index id
	 * @param id the index value
	 * @return the object with index id
	 */
	public X getObject(int id);
	
	/**
	 * The number of object in the set and -1 if unknown
	 * @return
	 */
	public long size();
	
	
}
